有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java实体管理器始终为空

我正在开发一个J2EE应用程序,但是我遇到了一个问题,我的_entity_manager总是null。我检查了我的代码,我的池,我重新启动了EJB,我重新启动了GlassFish服务器,但是我仍然有问题

坚持。xml:

<persistence version="2.1"
    xmlns="http://xmlns.jcp.org/xml/ns/persistence" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence 
    http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
    <persistence-unit name="teste" transaction-type="JTA">
      <jta-data-source>test</jta-data-source>
    </persistence-unit>
</persistence>

资源注入线:

@javax.persistence.PersistenceContext(type =
javax.persistence.PersistenceContextType.TRANSACTION, unitName = "test")
private javax.persistence.EntityManager _entity_manager;

The Pool

The JDBC Ressource

例外情况:

Grave: java.lang.NullPointerException at com.sun.common.util.logging.LoggingOutputStream$LoggingPrintStream.println(LoggingOutputStream.java:228) at org.apache.felix.gogo.runtime.threadio.ThreadPrintStream.println(ThreadPrintStream.java:205) at Controller.BCMS.start(BCMS.java:387)

这是第387行,这是错误产生的原因:

System.out.println(this._entity_manager);

你知道为什么它不起作用吗


共 (1) 个答案

  1. # 1 楼答案

    您已经指定了一个PersistenceUnit名称“teste”,但在注释中您正在寻找一个单元名称“test”(这是数据源的JNDI名称,而不是PersistenceUnit)

    试试这个:

    @PersistenceContext(unitName = "teste")
    private EntityManager _entity_manager;